package com.note.feng.leetcode.algorithms.easy.seven;

public class SevenHundredSeventeen {
    /**
     * 717 1 比特与 2 比特字符
     * 有两种特殊字符：
     *
     * 第一种字符可以用一比特 0 表示
     * 第二种字符可以用两比特（10 或 11）表示
     * 给你一个以 0 结尾的二进制数组 bits ，如果最后一个字符必须是一个一比特字符，则返回 true 。
     *
     * 示例 1:
     *
     * 输入: bits = [1, 0, 0]
     * 输出: true
     * 解释: 唯一的解码方式是将其解析为一个两比特字符和一个一比特字符。
     * 所以最后一个字符是一比特字符。
     * 示例 2:
     *
     * 输入：bits = [1,1,1,0]
     * 输出：false
     * 解释：唯一的解码方式是将其解析为两比特字符和两比特字符。
     * 所以最后一个字符不是一比特字符。
     *  
     * 提示:
     *
     * 1 <= bits.length <= 1000
     * bits[i] 为 0 或 1
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode.cn/problems/1-bit-and-2-bit-characters
     */
    /**
     * 解法：正向遍历
     * 如果 i = bits.length - 1,说明能够遍历到最后一位，返回true
     * 在遍历过程中，如果遇到 1 ，走两步，遇到 0，走一步
     * @param bits
     * @return
     */
    public boolean isOneBitCharacter(int[] bits) {
        for (int i = 0; i < bits.length; i++) {
            if(i == bits.length - 1){
                return true;
            }
            if(bits[i] == 1){
                i ++;
            }
        }
        return false;
    }
}
